package base

import "encoding/json"

type WechatRequest struct {

}

const (
	Code_ERR = -1 //出现异常、错误
	Code_0   =0   //成功
	Code_1   =1   //成功
	Code_401 =401 //权限不够

)

// 未携带Data的Response，需要子类定义Data
type WechatResponse struct {
	Code int `json:"Code"`
	Msg string `json:"Message"`
	Success bool `json:"Success"`
}


//  提供得通用得带状态返回的Response
type WechatResponseCommon struct {
	WechatResponse
	Data WechatData `json:"Data"`

}

func (this *WechatResponseCommon) Success() bool {
	if this.Code ==Code_0 && this.Data.BaseResponse.Ret==Code_0{
		return true
	}
	return false
}

type WechatData struct {
	// 默认的就大写，如果是小写 重新定义
	BaseResponse BaseResponse `json:"BaseResponse"` //这个返回的补丁BaseResponse和 baseResponse
}

type BaseResponse struct {
	Ret int `json:"ret"` // 0 成功
	ErrMsg interface{} `json:"errMsg"`
}

func (this *WechatResponseCommon) FromJson(data []byte) error {
	return json.Unmarshal(data,this)
}
